package com.admin.service;

import com.admin.entity.Admin;
import com.admin.entity.Terminal;
import com.admin.entity.TerminalKey;
import com.admin.excelList.TerminalList;
import com.admin.requestBody.TerminalPasswordRequest2;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author marisheng
 * @since 2019-11-15
 */
public interface ITerminalService extends IService<Terminal> {

    public IPage selectTerminal(int page, int limit, Map m);

    public int updateLockById(String terminalLock, Integer terminalId);

    /**
     * 终端列表查询所有或模糊查 房间号 /mac/ ip地址
     *
     * @param page
     * @param limit
     * @param m
     * @return
     */
    public IPage queryIpMacFjAll(int page, int limit, Map m);

    public IPage excelTerminal(int page,int limit , Map  m);
    /**
     * /终端统计
     *
     * @param page
     * @param limit
     * @param m
     * @return
     */
    public IPage querysystemStatistics(int page, int limit, Map m);

    /**
     * 密钥列表
     *
     * @param page
     * @param limit
     * @param m
     * @return
     */
    public IPage queryTerminalKeyS(int page, int limit, Map m);

    /**
     * 根据mac地址查找终端对象
     *
     * @param mac
     * @return
     */
    public Terminal getTerminalByMac(String mac);

    /**
     * 根据id查询，看是否有这个站点
     *
     * @param stationId
     * @return
     */
    public boolean findByStationId(String stationId);

    /**
     * 查询终端的上下线历史记录
     */
    public IPage queryStatrtAndEndTime(int page, int limit, Map map);


    /**
     * 分组列表 操作查看每个分组的所有终端
     *
     * @param page  页
     * @param limit 条数据
     * @param map   查询参数
     * @return
     */
    public IPage groupQueryTerminal(int page, int limit, Map map);

    /**
     * 站点管理 终端列表 解绑
     *
     * @param terminalId
     * @return
     */
    public int updateUntyingTerminal(Integer terminalId);

    /**
     * 下线所有终端
     */
    public void offlineAllTerminal();

    public int TerminalByIdUpdateTermainal_keyByIdupdate(Terminal terminal, TerminalKey terminalKey, TerminalPasswordRequest2 tp);

    /**
     * 审核终端解绑
     * @param page
     * @param limit
     * @param tiaojian
     * @return
     */
    public IPage queryJieChu(int page,int limit,String tiaojian);

    /**
     * 终端审核
     * @param id
     * @return
     */
    public void updateTShenhe(int id);

    public List<TerminalList> excelTerminalList();

    /**
     * 查询adminid通过站点id
     * @param stationBh
     * @return
     */
    public int selectAdminIdByStationBh(String stationBh);
    /**
     * 终端未审核的数量
     * @return
     */
    public int terminalWeishenheCount();

    /**
     * 查子用户的所有终端
     * @param page
     * @param limit
     * @param map
     * @param admin
     * @return
     */
    IPage selectTerminal(int page, int limit, Map map, Admin admin);

    IPage getShenheTermal(int page, int limit, Admin admin);
}
